home *** CD-ROM | disk | FTP | other *** search
/ CD Actual 3 / CD ACTUAL 3.iso / linux / system / flicb_1.6 / flicb_1 / flicb / clientsock.c next >
Encoding:
C/C++ Source or Header  |  1994-08-05  |  1.0 KB  |  43 lines

  1. /* Fairlight's ICB Client  v1.0                                              */
  2. /* Copyright 1994, Mark Luljak <fairlite@arcadia.aldridge.sol.net>           */
  3. /*                                                                           */
  4. /* This Function written by Steven Grimm (koreth@hyperion.com)               */
  5. /* Thanks, Steven...couldn't have done it without you...                     */
  6.  
  7. #include "flicb.h"
  8.  
  9. int clientsock(host, port)
  10. char *host;
  11. int port;
  12. {
  13.     int    sock;
  14.     struct    sockaddr_in server;
  15.     struct    hostent *hp, *gethostbyname();
  16.  
  17.     bzero(&server, sizeof(server));
  18.     server.sin_family = AF_INET;
  19.     server.sin_port = htons(port);
  20.  
  21.     if (isdigit(host[0]))
  22.         server.sin_addr.s_addr = inet_addr(host);
  23.     else
  24.     {
  25.         hp = gethostbyname(host);
  26.         if (hp == NULL)
  27.             return -9999;
  28.         bcopy(hp->h_addr, &server.sin_addr, hp->h_length);
  29.     }
  30.  
  31.     sock = socket(AF_INET, SOCK_STREAM, 0);
  32.     if (sock < 0)
  33.         return -errno;
  34.  
  35.     if (connect(sock,(struct sockaddr *) &server, sizeof(server)) < 0)
  36.     {
  37.         close(sock);
  38.         return -errno;
  39.     }
  40.  
  41.     return sock;
  42. }
  43.